package com.my.demo.demo2.util;

import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author shanchong
 * @date 2019-07-15
 **/
public class ClassUtil {


    /**
     * 获取所有的get方法
     * @param clazz
     * @return
     */
    public static List<Method> getMethods(Class clazz){
        final Method[] methods = clazz.getMethods();
        return Arrays.stream(methods)
                .filter(m -> !m.getName().equals("getClass") && !m.getName().equals("hashCode"))
                .filter(m -> m.getName().startsWith("get"))
                .collect(Collectors.toList());
    }

    public static List<Method> setMethods(Class clazz){
        final Method[] methods = clazz.getMethods();
        return Arrays.stream(methods)
                .filter(m -> !m.getName().equals("getClass") && !m.getName().equals("hashCode"))
                .filter(m -> m.getName().startsWith("set"))
                .collect(Collectors.toList());
    }

}
